package generator.domain;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import javax.validation.constraints.NotNull;

import java.io.Serializable;

import java.util.Date;
import java.math.BigDecimal;
import io.swagger.annotations.ApiModelProperty;
import org.hibernate.validator.constraints.Length;

/**
* 酒店订单表
* @TableName main_hotel_order
*/
public class MainHotelOrder implements Serializable {

    /**
    * 数据ID
    */
    @NotNull(message="[数据ID]不能为空")
    @ApiModelProperty("数据ID")
    private Long id;
    /**
    * 用户ID
    */
    @ApiModelProperty("用户ID")
    private Long buyerId;
    /**
    * 用户名
    */
    @Size(max= 50,message="编码长度不能超过50")
    @ApiModelProperty("用户名")
    @Length(max= 50,message="编码长度不能超过50")
    private String buyerUsername;
    /**
    * 酒店ID
    */
    @ApiModelProperty("酒店ID")
    private Long hotelsId;
    /**
    * 房型ID
    */
    @ApiModelProperty("房型ID")
    private Long typeId;
    /**
    * 收货人
    */
    @Size(max= 32,message="编码长度不能超过32")
    @ApiModelProperty("收货人")
    @Length(max= 32,message="编码长度不能超过32")
    private String receiverName;
    /**
    * 收货电话
    */
    @Size(max= 32,message="编码长度不能超过32")
    @ApiModelProperty("收货电话")
    @Length(max= 32,message="编码长度不能超过32")
    private String receiverPhone;
    /**
    * 身份证
    */
    @Size(max= 32,message="编码长度不能超过32")
    @ApiModelProperty("身份证")
    @Length(max= 32,message="编码长度不能超过32")
    private String identity;
    /**
    * 使用日期开始
    */
    @ApiModelProperty("使用日期开始")
    private Date usingBegin;
    /**
    * 使用日期结束
    */
    @ApiModelProperty("使用日期结束")
    private Date usingEnd;
    /**
    * 预订数量
    */
    @ApiModelProperty("预订数量")
    private Integer hotelsNum;
    /**
    * 商品销售总价
    */
    @ApiModelProperty("商品销售总价")
    private BigDecimal totalPrice;
    /**
    * 订单状态:0=就绪, 1=待支付，2=已支付，待发货, 3=已发货/待收货，4=确认收货/已完成,5=取消支付或支付失败
    */
    @ApiModelProperty("订单状态:0=就绪, 1=待支付，2=已支付，待发货, 3=已发货/待收货，4=确认收货/已完成,5=取消支付或支付失败")
    private Integer orderState;
    /**
    * 支付时间
    */
    @ApiModelProperty("支付时间")
    private Date gmtPay;
    /**
    * 数据创建时间
    */
    @ApiModelProperty("数据创建时间")
    private Date gmtCreate;
    /**
    * 数据最后修改时间
    */
    @ApiModelProperty("数据最后修改时间")
    private Date gmtModified;

    /**
    * 数据ID
    */
    private void setId(Long id){
    this.id = id;
    }

    /**
    * 用户ID
    */
    private void setBuyerId(Long buyerId){
    this.buyerId = buyerId;
    }

    /**
    * 用户名
    */
    private void setBuyerUsername(String buyerUsername){
    this.buyerUsername = buyerUsername;
    }

    /**
    * 酒店ID
    */
    private void setHotelsId(Long hotelsId){
    this.hotelsId = hotelsId;
    }

    /**
    * 房型ID
    */
    private void setTypeId(Long typeId){
    this.typeId = typeId;
    }

    /**
    * 收货人
    */
    private void setReceiverName(String receiverName){
    this.receiverName = receiverName;
    }

    /**
    * 收货电话
    */
    private void setReceiverPhone(String receiverPhone){
    this.receiverPhone = receiverPhone;
    }

    /**
    * 身份证
    */
    private void setIdentity(String identity){
    this.identity = identity;
    }

    /**
    * 使用日期开始
    */
    private void setUsingBegin(Date usingBegin){
    this.usingBegin = usingBegin;
    }

    /**
    * 使用日期结束
    */
    private void setUsingEnd(Date usingEnd){
    this.usingEnd = usingEnd;
    }

    /**
    * 预订数量
    */
    private void setHotelsNum(Integer hotelsNum){
    this.hotelsNum = hotelsNum;
    }

    /**
    * 商品销售总价
    */
    private void setTotalPrice(BigDecimal totalPrice){
    this.totalPrice = totalPrice;
    }

    /**
    * 订单状态:0=就绪, 1=待支付，2=已支付，待发货, 3=已发货/待收货，4=确认收货/已完成,5=取消支付或支付失败
    */
    private void setOrderState(Integer orderState){
    this.orderState = orderState;
    }

    /**
    * 支付时间
    */
    private void setGmtPay(Date gmtPay){
    this.gmtPay = gmtPay;
    }

    /**
    * 数据创建时间
    */
    private void setGmtCreate(Date gmtCreate){
    this.gmtCreate = gmtCreate;
    }

    /**
    * 数据最后修改时间
    */
    private void setGmtModified(Date gmtModified){
    this.gmtModified = gmtModified;
    }


    /**
    * 数据ID
    */
    private Long getId(){
    return this.id;
    }

    /**
    * 用户ID
    */
    private Long getBuyerId(){
    return this.buyerId;
    }

    /**
    * 用户名
    */
    private String getBuyerUsername(){
    return this.buyerUsername;
    }

    /**
    * 酒店ID
    */
    private Long getHotelsId(){
    return this.hotelsId;
    }

    /**
    * 房型ID
    */
    private Long getTypeId(){
    return this.typeId;
    }

    /**
    * 收货人
    */
    private String getReceiverName(){
    return this.receiverName;
    }

    /**
    * 收货电话
    */
    private String getReceiverPhone(){
    return this.receiverPhone;
    }

    /**
    * 身份证
    */
    private String getIdentity(){
    return this.identity;
    }

    /**
    * 使用日期开始
    */
    private Date getUsingBegin(){
    return this.usingBegin;
    }

    /**
    * 使用日期结束
    */
    private Date getUsingEnd(){
    return this.usingEnd;
    }

    /**
    * 预订数量
    */
    private Integer getHotelsNum(){
    return this.hotelsNum;
    }

    /**
    * 商品销售总价
    */
    private BigDecimal getTotalPrice(){
    return this.totalPrice;
    }

    /**
    * 订单状态:0=就绪, 1=待支付，2=已支付，待发货, 3=已发货/待收货，4=确认收货/已完成,5=取消支付或支付失败
    */
    private Integer getOrderState(){
    return this.orderState;
    }

    /**
    * 支付时间
    */
    private Date getGmtPay(){
    return this.gmtPay;
    }

    /**
    * 数据创建时间
    */
    private Date getGmtCreate(){
    return this.gmtCreate;
    }

    /**
    * 数据最后修改时间
    */
    private Date getGmtModified(){
    return this.gmtModified;
    }

}
